renderer: Remove display property
authorBenjamin Otte <otte@redhat.com>
Sat, 9 Mar 2019 12:36:14 +0000 (13:36 +0100)
committerBenjamin Otte <otte@redhat.com>
Tue, 19 Mar 2019 07:47:54 +0000 (08:47 +0100)
Renderers don't need a display until they get realized. And once they
get realized, they can look up the display from the surface.

docs/reference/gsk/gsk4-sections.txt
gsk/gskbroadwayrenderer.c
gsk/gskrenderer.c
gsk/gskrenderer.h

index c66c32cfcb015e7f563fab691aab8483fcad0684..63b525b6f512856e41c10b35e1f720d90ae2b9f3 100644 (file)
@@ -2,7 +2,6 @@
 <FILE>GskRenderer</FILE>
 gsk_renderer_new_for_surface
 gsk_renderer_get_surface
-gsk_renderer_get_display
 gsk_renderer_realize
 gsk_renderer_unrealize
 gsk_renderer_render
index fc4507f62beb29c89eec0c777f469addd8fec904..84b948d676e7c8b04ff5e2a7319214aae6b59bbf 100644 (file)
@@ -461,7 +461,7 @@ gsk_broadway_renderer_add_node (GskRenderer *renderer,
                                 float offset_x,
                                 float offset_y)
 {
-  GdkDisplay *display = gsk_renderer_get_display (renderer);
+  GdkDisplay *display = gdk_surface_get_display (gsk_renderer_get_surface (renderer));
 
   switch (gsk_render_node_get_node_type (node))
     {
index d321c501817bc34b50f9e55940344c520ca7dd3b..b34cad3d2442fcca7e745dd35950fa2301c858be 100644 (file)
@@ -68,7 +68,6 @@ typedef struct
   GdkSurface *surface;
   GskRenderNode *prev_node;
   GskRenderNode *root_node;
-  GdkDisplay *display;
 
   GskProfiler *profiler;
 
@@ -81,7 +80,6 @@ G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GskRenderer, gsk_renderer, G_TYPE_OBJECT)
 
 enum {
   PROP_SURFACE = 1,
-  PROP_DISPLAY,
 
   N_PROPS
 };
@@ -134,33 +132,10 @@ gsk_renderer_dispose (GObject *gobject)
   g_assert (!priv->is_realized);
 
   g_clear_object (&priv->profiler);
-  g_clear_object (&priv->display);
 
   G_OBJECT_CLASS (gsk_renderer_parent_class)->dispose (gobject);
 }
 
-static void
-gsk_renderer_set_property (GObject      *gobject,
-                           guint         prop_id,
-                           const GValue *value,
-                           GParamSpec   *pspec)
-{
-  GskRenderer *self = GSK_RENDERER (gobject);
-  GskRendererPrivate *priv = gsk_renderer_get_instance_private (self);
-
-  switch (prop_id)
-    {
-    case PROP_DISPLAY:
-      /* Construct-only */
-      priv->display = g_value_dup_object (value);
-      break;
-
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
-      break;
-    }
-}
-
 static void
 gsk_renderer_get_property (GObject    *gobject,
                            guint       prop_id,
@@ -176,33 +151,12 @@ gsk_renderer_get_property (GObject    *gobject,
       g_value_set_object (value, priv->surface);
       break;
 
-    case PROP_DISPLAY:
-      g_value_set_object (value, priv->display);
-      break;
-
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
       break;
     }
 }
 
-static void
-gsk_renderer_constructed (GObject *gobject)
-{
-  GskRenderer *self = GSK_RENDERER (gobject);
-  GskRendererPrivate *priv = gsk_renderer_get_instance_private (self);
-
-  if (priv->display == NULL)
-    {
-      GdkDisplayManager *manager = gdk_display_manager_get ();
-
-      priv->display = gdk_display_manager_get_default_display (manager);
-      g_assert (priv->display != NULL);
-    }
-
-  G_OBJECT_CLASS (gsk_renderer_parent_class)->constructed (gobject);
-}
-
 static void
 gsk_renderer_class_init (GskRendererClass *klass)
 {
@@ -213,25 +167,9 @@ gsk_renderer_class_init (GskRendererClass *klass)
   klass->render = gsk_renderer_real_render;
   klass->render_texture = gsk_renderer_real_render_texture;
 
-  gobject_class->constructed = gsk_renderer_constructed;
-  gobject_class->set_property = gsk_renderer_set_property;
   gobject_class->get_property = gsk_renderer_get_property;
   gobject_class->dispose = gsk_renderer_dispose;
 
-  /**
-   * GskRenderer:display:
-   *
-   * The #GdkDisplay used by the #GskRenderer.
-   */
-  gsk_renderer_properties[PROP_DISPLAY] =
-    g_param_spec_object ("display",
-                        "Display",
-                        "The GdkDisplay object used by the renderer",
-                        GDK_TYPE_DISPLAY,
-                        G_PARAM_READWRITE |
-                        G_PARAM_CONSTRUCT_ONLY |
-                        G_PARAM_STATIC_STRINGS);
-
   gsk_renderer_properties[PROP_SURFACE] =
     g_param_spec_object ("surface",
                          "Surface",
@@ -290,24 +228,6 @@ gsk_renderer_get_root_node (GskRenderer *renderer)
 }
 
 /**
- * gsk_renderer_get_display:
- * @renderer: a #GskRenderer
- *
- * Retrieves the #GdkDisplay used when creating the #GskRenderer.
- *
- * Returns: (transfer none): a #GdkDisplay
- */
-GdkDisplay *
-gsk_renderer_get_display (GskRenderer *renderer)
-{
-  GskRendererPrivate *priv = gsk_renderer_get_instance_private (renderer);
-
-  g_return_val_if_fail (GSK_IS_RENDERER (renderer), NULL);
-
-  return priv->display;
-}
-
-/*< private >
  * gsk_renderer_is_realized:
  * @renderer: a #GskRenderer
  *
@@ -674,9 +594,7 @@ gsk_renderer_new_for_surface (GdkSurface *surface)
        * information to stdout.
        */
       verbose |= renderer_possibilities[i].verbose;
-      renderer = g_object_new (renderer_type,
-                               "display", gdk_surface_get_display (surface),
-                               NULL);
+      renderer = g_object_new (renderer_type, NULL);
 
       if (gsk_renderer_realize (renderer, surface, &error))
         {
index 55b32b6c6ad2c06765aefe1823db08270da36191..6af9af1133b275e72b5c599a815ecc5454f4ce1c 100644 (file)
@@ -39,13 +39,10 @@ GDK_AVAILABLE_IN_ALL
 GType gsk_renderer_get_type (void) G_GNUC_CONST;
 
 GDK_AVAILABLE_IN_ALL
-GskRenderer *           gsk_renderer_new_for_surface           (GdkSurface               *surface);
+GskRenderer *           gsk_renderer_new_for_surface            (GdkSurface               *surface);
 
 GDK_AVAILABLE_IN_ALL
-GdkSurface *             gsk_renderer_get_surface               (GskRenderer             *renderer);
-
-GDK_AVAILABLE_IN_ALL
-GdkDisplay *            gsk_renderer_get_display                (GskRenderer             *renderer);
+GdkSurface *            gsk_renderer_get_surface                (GskRenderer             *renderer);
 
 GDK_AVAILABLE_IN_ALL
 gboolean                gsk_renderer_realize                    (GskRenderer             *renderer,